export interface User {
  accountNumber: string;
  password: string;
}

export interface APIData {
  code?: number;
  data?: any;
  message?: string;
}

export interface IModifyPwd {
  id: string;
  password: string;
}

export interface LoginToken {
  token: string;
}

export interface TokenToInfo {
  info: ITch | IStu;
}

export interface ITch {
  id: string;
  workId: string;
  password: string;
  identityId: string;
  name: string;
  phone?: string;
  sex: number;
  qq?: string;
  isAdmin?: number;
  isResigned?: number;
}
export interface IStu {
  id: string;
  studentId: string;
  password: string;
  identityId: string;
  phone: string;
  name: string;
  sex: number;
  stage: number;
  department: number;
  major: string;
  college: string;
  isDelete?: number;
  qq: string;
}

export interface IPageParams {
  otherParams: AllStuParams;
  pageParams: IPage;
}

interface IPage {
  pageNum: number;
  pageSize: number;
  sortField: string;
  sortType: string;
}

interface AllStuParams {
  stage: number;
  stuName: string;
  stuSex?: string;
  workId?: string;
  isDelete?: string;
  department?: number;
}

export interface IStuWorkPageParams {
  otherParams: IStuWorkParams;
  pageParams: IPage;
}

interface IStuWorkParams {
  stage: number;
  workId?: string;
  department?: number;
  companyName: string;
  isWorked: string;
  stuName: string;
  workCity: string;
  workType: string;
}

export interface IStuWork {
  id: string;
  studentId: string;
  stuName: string;
  department: number;
  isWorked: number;
  companyName: string;
  workType: string;
  workCity: string;
}

export interface IPageRes {
  pageNum: number;
  pageSize: number;
  rows: any;
  totalPages: number;
  totalSize: number;
}

export interface IFalseDelete {
  id: string;
  isDelete: number;
}

export interface ITchStageParams {
  workId: string;
}

export interface IStuWorkChartParams {
  stage: number;
  workId?: string;
  department?: number;
}

export interface IStuWorkChat {
  totalStuCount: number;
  workStuNum: number;
  unWorkStuNum: number;
  boyWorkCount: number;
  girlWorkCount: number;
  workCityList: string[];
  workCityStuNumList: number[];
  workTypeList: string[];
  workTypeStuNumList: number[];
}

export interface IStuScore {
  id: string;
  studentId: string;
  stuName: string;
  javaBase?: number;
  dataBase?: number;
  staticWeb?: number;
  dynamicWeb?: number;
  javaDatabasePro?: number;
  finalExam?: number;
  projectOne?: number;
  projectTwo?: number;
  projectThree?: number;
  remarks?: string;
}

export interface IThemeColor {
  font: string;
  border: string;
  lighter: string;
  main: string;
  active: string;
  stripe: string;
  success: string;
  warning: string;
  danger: string;
}

export interface IExamScoreChartParams {
  stage: number;
  workId?: string;
  department?: number;
  examName: string;
}

export interface IHomePageChartParams {
  workId: string;
}

export interface IStuScoreChartParams {
  stage: number;
  workId?: string;
  department?: number;
  studentId: string;
}

export interface IExamScoreChart {
  lineXAxis: string[];
  lineYAxis: number[];
  maxScore: number;
  minScore: number;
  aveScore: number;
  totalStuNum: number;
  overAveNum: number;
  passRate: number;
  goodRate: number;
  personalRank: PersonalRank[];
}

interface PersonalRank {
  studentId: string;
  score: string;
  rank: string;
  stuName: string;
}

export interface IPerExamRank {
  score: string;
  level: string;
  examName: string;
  rank: string;
}

export interface IExam {
  name: string;
  enName: string;
}

export interface IStuScoreChart {
  perExamData: PerExamDatum[];
  lineYData: number[];
  lineXData: string[];
  pieLabelData: string[];
  pieValueData: number[];
  passRate: number;
  aveScore: number;
}

interface PerExamDatum {
  score: string;
  level: string;
  examName: string;
  rank: string;
}

export interface IHomePageChart {
  workYAxis: number[];
  totalStu: number;
  totalWorked: number;
  totalNoWorked: number;
  totalRecruitment: number;
  recruitmentXAxis: string[];
  recruitmentYAxis: number[];
  recruitmentExamYAxis: number[];
}

export interface IStageList {
  stage: number;
  department: number;
  departmentName: string;
}

export interface IRecruitment {
  id: string;
  studentId: string;
  identityId: string;
  phone: string;
  name: string;
  sex: number;
  major: string;
  college: string;
  isExam: number;
  qq: string;
  isDelete?: number;
}

export interface IRecruitmentParams {
  otherParams: IAllRecruitmentParams;
  pageParams: IPage;
}

interface IAllRecruitmentParams {
  college: string;
  isExam: string;
  major: string;
  stuName: string;
  stuSex: string;
  isDelete: string;
}

export interface IRecruitmentChart {
  majorTypeXData: string[][];
  majorTypeYData: number[][];
  collegeTypeXData: string[][];
  collegeTypeYData: number[][];
  recruitmentXData: string[];
  recruitmentYData: number[];
  recruitmentExamYData: number[];
  sexScaleYData: number[][];
}

export interface IActiveTdList {
  rowNum: number;
  colNum: number;
}

export interface IActiveCourseList {
  rowNum: number;
  colNum: number;
  course: ICourseTable;
}

export interface ICourseTable {
  id?: string;
  courseName: string;
  workId?: string;
  tchName: string;
  weekDay: number;
  orderNum: number;
  smallCount: number;
  place: string;
  stage?: number;
  color?: string;
  department?: number;
}

export interface IAllCourseParams {
  stage: number;
  department: number;
  workId?: string;
  weekDay?: number;
}

export interface IEditCourse {
  id: string;
  courseName: string;
  place: string;
  color?: string;
}

export interface IForgetsStuPwd {
  id: string;
  studentId: string;
  identityId: string;
  phone: string;
  name: string;
  sex: number;
  stage: number;
  department: number;
  major: string;
  college: string;
  qq: string;
}

export interface IForgetTchPwd {
  tchInfo: TchInfo;
  stageList: StageList[];
}

interface StageList {
  id: string;
  stage: number;
  work_id: string;
  department: number;
  departmentName: string;
}

interface TchInfo {
  id: string;
  workId: string;
  password?: any;
  identityId: string;
  name: string;
  phone: string;
  sex: number;
}

export interface ITchPageParams {
  otherParams: AllTchParams;
  pageParams: IPage;
}

interface AllTchParams {
  isAdmin: string;
  isResigned: string;
  tchName: string;
  tchSex: string;
}
